home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Games / SpriteFight 2002 v2.0a1 / GameUtils.c < prev    next >
Text File  |  1994-02-27  |  3KB  |  133 lines

  1. ///--------------------------------------------------------------------------------------
  2. //    GameUtils.c
  3. //
  4. //    Created:    9/19/90
  5. //    By:        Tony Myles
  6. //
  7. //    Copyright: © 1990-94 Tony Myles, All rights reserved worldwide
  8. //
  9. //    Description:    some utility functions for games
  10. ///--------------------------------------------------------------------------------------
  11.  
  12.  
  13. #ifndef __QUICKDRAW__
  14. #include <QuickDraw.h>
  15. #endif
  16.  
  17. #ifndef __MENUS__
  18. #include <Menus.h>
  19. #endif
  20.  
  21. #ifndef __GAMEUTILS__
  22. #include "GameUtils.h"
  23. #endif
  24.  
  25. #if MPW
  26. #pragma segment Utils
  27. #endif
  28.  
  29.  
  30. ///--------------------------------------------------------------------------------------
  31. //    GetRandom
  32. //
  33. //    generate a random number between min and max inclusive
  34. ///--------------------------------------------------------------------------------------
  35.  
  36. unsigned short GetRandom(
  37.     unsigned short min,
  38.     unsigned short max)
  39. {
  40.     unsigned short random;
  41.     long range, temp;
  42.  
  43.     random = Random();
  44.     range = (max - min) + 1;
  45.     temp = (random * range) / 65536;
  46.     random = temp + min;
  47.  
  48.     return random;
  49. }
  50.  
  51.  
  52. void CenterRect(
  53.     Rect* srcRect,
  54.     Rect* dstRect)
  55. {
  56.     short width = (dstRect->right - dstRect->left);
  57.     short height = (dstRect->bottom - dstRect->top);
  58.  
  59.     dstRect->left = srcRect->left + (((srcRect->right - srcRect->left) / 2) - (width / 2));
  60.     dstRect->top = srcRect->top + (((srcRect->bottom - srcRect->top) / 2) - (height / 2));
  61.     dstRect->right = dstRect->left + width;
  62.     dstRect->bottom = dstRect->top + height;
  63. }
  64.  
  65.  
  66. /*
  67.         // globals for the menubar showing/hiding stuff
  68. */
  69. RgnHandle gOldVisRgn = NULL;
  70.  
  71.  
  72. ///--------------------------------------------------------------------------------------
  73. //    HideMenuBar
  74. ///--------------------------------------------------------------------------------------
  75.  
  76. void HideMenuBar(
  77.     GrafPtr grafPort)
  78. {
  79.     RgnHandle newVisRgn;
  80.     GrafPtr savePort;
  81.  
  82.     GetPort(&savePort);
  83.     SetPort(grafPort);
  84.  
  85.         // save off vis region
  86.     gOldVisRgn = NewRgn();
  87.     CopyRgn(grafPort->visRgn, gOldVisRgn);
  88.  
  89.         // expand the vis region to the port rect
  90.     newVisRgn = NewRgn();
  91.     RectRgn(newVisRgn, &grafPort->portRect);
  92.     CopyRgn(newVisRgn, grafPort->visRgn);
  93.     DisposeRgn(newVisRgn);
  94.  
  95.     SetPort(savePort);
  96. }
  97.  
  98.  
  99. ///--------------------------------------------------------------------------------------
  100. //    ShowMenuBar
  101. ///--------------------------------------------------------------------------------------
  102.  
  103. void ShowMenuBar(
  104.     GrafPtr grafPort)
  105. {
  106.     GrafPtr savePort;
  107.     RgnHandle junkRgn;
  108.  
  109.     GetPort(&savePort);
  110.     SetPort(grafPort);
  111.  
  112.         // fill the rounded corners of the screen with black again
  113.     junkRgn = NewRgn();
  114.     CopyRgn(gOldVisRgn, junkRgn);
  115.     DiffRgn(grafPort->visRgn, junkRgn, junkRgn);
  116.  
  117.     #ifdef dangerousPattern
  118.     FillRgn(junkRgn, qd.black);
  119.     #else
  120.     FillRgn(junkRgn, &qd.black);
  121.     #endif
  122.  
  123.     DisposeRgn(junkRgn);
  124.  
  125.         // restore the old vis region
  126.     CopyRgn(gOldVisRgn, grafPort->visRgn);
  127.     DisposeRgn(gOldVisRgn);
  128.     gOldVisRgn = NULL;
  129.  
  130.     DrawMenuBar();
  131. }
  132.  
  133.